#ifndef MONSTER_H
#define MONSTER_H

#include <vector>

#include "Globals.h"
#include "Man.h"

using namespace std;

class Monster
{
    public:
        Monster();

        void initialize(int pos_x, int pos_y);
        void update();
        void position_check();

        void follow_digdugX( Man* Dig_Dug );
        void follow_digdugY( Man* Dig_Dug );

        int get_digdugX(){ return _digdugX; }
        int get_digdugY(){ return _digdugY; }

        void move_up();
        void move_down();
        void move_left();
        void move_right();

        bool collide_arrow(int arrow_pos_x, int arrow_pos_y);

        int get_xPos(){return _xPos;}
        int get_yPos(){return _yPos;}

        int get_direction_x(){return _xDirection;}
        int get_direction_y(){return _yDirection;}

        float get_speed_x(){return _xSpeed;}
        float get_speed_y(){return _ySpeed;}

        void check_soil( const vector<vector<bool> >& holes);

        bool getMonster_invisible(){ return _go_Invisible; }

        bool get_alive(){return _alive;}
        void set_alive(bool alive){_alive = alive;}///////////////////////////

    private:

        int _xPos;
        int _yPos;

        int _xDirection;
        int _yDirection;

        float _xSpeed;
        float _ySpeed;

        int _digdugX;
        int _digdugY;

        bool _hole_left;
        bool _hole_right;
        bool _hole_up;
        bool _hole_down;

        bool _go_Invisible;

        bool _alive;

        bool LeftRight_on;
        bool UpDown_on;

};

#endif // MAN_H
